The group parameters store information local to a particular group.
Use the G p or the G c command to edit
group parameters of a group. (G p presents you with a
Lisp-based interface, G c presents you with a
Customize-like interface. The latter helps avoid silly Lisp
errors.) You might also be interested in reading about topic
parameters (see Topic Parameters).
Additionally, you can set group parameters via the
gnus-parameters variable, see below.
Here's an example group parameter list:
((to-address . "ding@gnus.org")
(auto-expire . t))
We see that each element consists of a “dotted pair”—the thing before the dot is the key, while the thing after the dot is the value. All the parameters have this form except local variable specs, which are not dotted pairs, but proper lists.
Some parameters have correspondent customizable variables, each of which is an alist of regexps and values.
The following group parameters can be used:
to-address
(to-address . "some@where.com")
This is primarily useful in mail groups that represent closed mailing lists—mailing lists where it's expected that everybody that writes to the mailing list is subscribed to it. Since using this parameter ensures that the mail only goes to the mailing list itself, it means that members won't receive two copies of your followups.
Using to-address will actually work whether
the group is foreign or not. Let's say there's a group on the
server that is called ‘fa.4ad-l’. This is a real
newsgroup, but the server has gotten the articles from a
mail-to-news gateway. Posting directly to this group is
therefore impossible—you have to send mail to the
mailing list address instead.
See also
gnus-parameter-to-address-alist.
to-list
(to-list . "some@where.com")
It is totally ignored when doing a followup—except that if it is present in a news group, you'll get mail group semantics when doing f.
If you do an a command in a mail group and you
have neither a to-list group parameter nor a
to-address group parameter, then a
to-list group parameter will be added
automatically upon sending the message if
gnus-add-to-list is set to t.
If this variable is set,
gnus-mailing-list-mode is turned on when
entering summary buffer.
See also gnus-parameter-to-list-alist.
subscribedt, Gnus will consider
the to-address and to-list parameters for this group as
addresses of mailing lists you are subscribed to. Giving Gnus
this information is (only) a first step in getting it to
generate correct Mail-Followup-To headers for your posts to
these lists. The second step is to put the following in your
.gnus.el
(setq message-subscribed-address-functions
'(gnus-find-subscribed-addresses))
See Mailing
Lists, for a complete treatment of available MFT
support.
visible(visible .
t), that group will always be visible in the Group
buffer, regardless of whether it has any unread articles.
This parameter cannot be set via
gnus-parameters. See
gnus-permanently-visible-groups as an
alternative.
broken-reply-to(broken-reply-to . t) signals that
Reply-To headers in this group are to be ignored,
and for the header to be hidden if reply-to is
part of gnus-boring-article-headers. This can be
useful if you're reading a mailing list group where the
listserv has inserted Reply-To headers that point
back to the listserv itself. That is broken behavior. So
there!to-group(to-group .
"some.group.name") means that all posts in that group
will be sent to some.group.name.newsgroup(newsgroup .
t) in the group parameter list, Gnus will treat all
responses as if they were responses to news articles. This can
be useful if you have a mail group that's really a mirror of a
news group.gcc-self(gcc-self . t)
is present in the group parameter list, newly composed
messages will be Gcc'd to the current group. If
(gcc-self . none) is present, no
Gcc: header will be generated, if
(gcc-self . "string") is present, this string
will be inserted literally as a gcc header. This
parameter takes precedence over any default Gcc
rules as described later (see Archived
Messages).
Caveat: Adding (gcc-self .
t) to the parameter list of nntp groups
(or the like) isn't valid. An nntp server
doesn't accept articles.
auto-expire(auto-expire . t), all articles read will be
marked as expirable. For an alternative approach, see
Expiring Mail.
See also
gnus-auto-expirable-newsgroups.
total-expire(total-expire . t), all read articles will be
put through the expiry process, even if they are not marked
as expirable. Use with caution. Unread, ticked and dormant
articles are not eligible for expiry.
See also
gnus-total-expirable-newsgroups.
expiry-wait(expiry-wait . 10), this value will override any
nnmail-expiry-wait and
nnmail-expiry-wait-function (see Expiring Mail) when
expiring expirable messages. The value can either be a number
of days (not necessarily an integer) or the symbols
never or immediate.expiry-targetnnmail-expiry-target.score-file(score-file . "file") will make
file into the current
score file for the group in question. All interactive score
entries will be put into this file.adapt-file(adapt-file . "file") will make
file into the current
adaptive file for the group in question. All adaptive score
entries will be put into this file.admin-addressdisplay(display . MODE) say which articles to display
on entering the group. Valid values are:
allan integerdefaultan arrayHere are some examples:
[unread][not expire][and (not reply) (not expire)]The available operators are not,
and and or. Predicates include
tick, unsend,
undownload, unread,
dormant, expire,
reply, killed,
bookmark, score,
save, cache,
forward, unseen and
recent.
The display parameter works by limiting the
summary buffer to the subset specified. You can pop the limit
by using the / w command (see Limiting).
comment(comment
. "This is a comment") are arbitrary comments on the
group. You can display comments in the group line (see Group
Line Specification).charset(charset . iso-8859-1) will make
iso-8859-1 the default charset; that is, the
charset that will be used for all articles that do not
specify a charset.
See also gnus-group-charset-alist.
ignored-charsets(ignored-charsets x-unknown iso-8859-1) will
make iso-8859-1 and x-unknown
ignored; that is, the default charset will be used for
decoding articles.
See also
gnus-group-ignored-charsets-alist.
posting-stylegnus-posting-styles alist, except that there's
no regexp matching the group name (of course). Style elements
in this group parameter will take precedence over the ones
found in gnus-posting-styles.
For instance, if you want a funky name and signature in
this group only, instead of hacking
gnus-posting-styles, you could put something
like this in the group parameters:
(posting-style
(name "Funky Name")
("X-My-Header" "Funky Value")
(signature "Funky Signature"))
If you're using topics to organize your group buffer (see
Group Topics),
note that posting styles can also be set in the topics
parameters. Posting styles in topic parameters apply to all
groups in this topic. More precisely, the posting-style
settings for a group result from the hierarchical merging of
all posting-style entries in the parameters of this group and
all the topics it belongs to.
post-methodgnus-post-method.mail-sourcemail-sources includes a group mail
source (see Mail
Sources), the value is a mail source for this
group.banner(banner .
regexp) causes any part of an article
that matches the regular expression regexp to be
stripped. Instead of regexp, you can also use the
symbol signature which strips the last signature
or any of the elements of the alist
gnus-article-banner-alist.sieveFor example, if the ‘INBOX.list.sieve’ group has the
(sieve address "sender"
"sieve-admin@extundo.com") group parameter, when
translating the group parameter into a Sieve script (see
Sieve
Commands) the following Sieve code is generated:
if address "sender" "sieve-admin@extundo.com" {
fileinto "INBOX.list.sieve";
}
To generate tests for multiple email-addresses use a group
parameter like (sieve address "sender" ("name@one.org"
else@two.org")). When generating a sieve script (see
Sieve
Commands) Sieve code like the following is generated:
if address "sender" ["name@one.org", "else@two.org"] {
fileinto "INBOX.list.sieve";
}
See see Sieve Commands for commands and variables that might be of interest in relation to the sieve parameter.
The Sieve language is described in RFC 3028. See Emacs Sieve.
(agent parameters)(variable
form)(gnus-show-threads nil) in the group parameters
of that group. gnus-show-threads will be made
into a local variable in the summary buffer you enter, and
the form nil will be evaled there.
Note that this feature sets the variable locally to the
summary buffer if and only if variable has been
bound as a variable. Otherwise, only evaluating the form will
take place. So, you may want to bind the variable in advance
using defvar or other if the result of the form
needs to be set to it.
But some variables are evaluated in the article buffer, or
in the message buffer (of a reply or followup or otherwise
newly created message). As a workaround, it might help to add
the variable in question to
gnus-newsgroup-variables. See Various
Summary Stuff. So if you want to set
message-from-style via the group parameters,
then you may need the following statement elsewhere in your
~/.gnus.el file:
(add-to-list 'gnus-newsgroup-variables 'message-from-style)
A use for this feature is to remove a mailing list identifier tag in the subject fields of articles. E.g. if the news group
nntp+news.gnus.org:gmane.text.docbook.apps
has the tag ‘DOC-BOOK-APPS:’ in the subject of
all articles, this tag can be removed from the article
subjects in the summary buffer for the group by putting
(gnus-list-identifiers "DOCBOOK-APPS:") into the
group parameters for the group.
This can also be used as a group-specific hook function.
If you want to hear a beep when you enter a group, you could
put something like (dummy-variable (ding)) in
the parameters of that group. If dummy-variable
has been bound (see above), it will be set to the
(meaningless) result of the (ding) form.
Alternatively, since the VARIABLE becomes local to the group, this pattern can be used to temporarily change a hook. For example, if the following is added to a group parameter
(gnus-summary-prepared-hook
'(lambda nil (local-set-key "d" (local-key-binding "n"))))
when the group is entered, the 'd' key will not mark the article as expired.
Group parameters can be set
via the gnus-parameters variable too. But some
variables, such as visible, have no effect (For this
case see gnus-permanently-visible-groups as an
alternative.). For example:
(setq gnus-parameters
'(("mail\\..*"
(gnus-show-threads nil)
(gnus-use-scoring nil)
(gnus-summary-line-format
"%U%R%z%I%(%[%d:%ub%-23,23f%]%) %s\n")
(gcc-self . t)
(display . all))
("^nnimap:\\(foo.bar\\)$"
(to-group . "\\1"))
("mail\\.me"
(gnus-use-scoring t))
("list\\..*"
(total-expire . t)
(broken-reply-to . t))))
String value of parameters will be subjected to regexp
substitution, as the to-group example shows.
By
default, whether comparing the group name and one of those
regexps specified in gnus-parameters is done in a
case-sensitive manner or a case-insensitive manner depends on the
value of case-fold-search at the time when the
comparison is done. The value of case-fold-search is
typically t; it means, for example, the element
("INBOX\\.FOO" (total-expire . t)) might be applied
to both the ‘INBOX.FOO’ group and the
‘INBOX.foo’
group. If you want to make those regexps always case-sensitive,
set the value of the
gnus-parameters-case-fold-search variable to
nil. Otherwise, set it to t if you want
to compare them always in a case-insensitive manner.
You can define different sorting to different groups via
gnus-parameters. Here is an example to sort an
NNTP group by reverse date to see the latest
news at the top and an RSS group by subject.
In this example, the first group is the Debian daily news group
gmane.linux.debian.user.news from news.gmane.org.
The RSS group corresponds to the Debian weekly
news RSS feed http://packages.debian.org/unstable/newpkg_main.en.rdf,
See RSS.
(setq
gnus-parameters
'(("nntp.*gmane\\.debian\\.user\\.news"
(gnus-show-threads nil)
(gnus-article-sort-functions '((not gnus-article-sort-by-date)))
(gnus-use-adaptive-scoring nil)
(gnus-use-scoring nil))
("nnrss.*debian"
(gnus-show-threads nil)
(gnus-article-sort-functions 'gnus-article-sort-by-subject)
(gnus-use-adaptive-scoring nil)
(gnus-use-scoring t)
(gnus-score-find-score-files-function 'gnus-score-find-single)
(gnus-summary-line-format "%U%R%z%d %I%(%[ %s %]%)\n"))))